package com.ruoyi.web.entity.db;

import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.ruoyi.core.entity.BaseMap;
import com.ruoyi.core.entity.SortByType;
import com.ruoyi.core.entity.SortInfo;
import com.ruoyi.core.entity.SumInfo;
import lombok.Data;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

@Data
public class QueryPageCreator extends QueryCreator {
    protected int pageNum;
    protected int pageSize;

    protected List<SumInfo> sums;

    public QueryPageCreator(int pageNum, int pageSize) {
        this.pageNum = pageNum;
        this.pageSize = pageSize;
    }

    public QueryPageCreator(BaseMap entity) {
        int pageNum = entity.getInteger("pageNum", 1);
        int pageSize = entity.getInteger("pageSize", 10);
        entity.remove("pageNum");
        entity.remove("pageSize");

        String sortName = entity.getString("sortName");
        String sortBy = entity.getString("sortBy");
        entity.remove("sortName");
        entity.remove("sortBy");

        this.pageNum = pageNum;
        this.pageSize = pageSize;
        if (!StringUtils.isEmpty(sortName) && !StringUtils.isEmpty(sortBy)) {
            SortInfo sortInfo = new SortInfo(sortName, SortByType.asc.toString().equals(sortBy) ? SortByType.asc : SortByType.desc);
            this.setSorts(new ArrayList<>(Collections.singletonList(sortInfo)));
        }

        this.setQueryData(entity);
    }
}
